{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. python解释器"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. Ipython"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. Tab补全\n",
    "* 变量不全\n",
    "* 函数/方法补全\n",
    "* 路径补全\n",
    "* 关键字补全"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.1 变量补全"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "name_age = [\"liwen_19\",\"wuyifan_30\",\"zhangyao_23\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "dict_person = {}\n",
    "# 方法1 \n",
    "for n in name_age:\n",
    "    dict_person[n.split(\"_\")[0]] = n.split(\"_\")[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'liwen': '19', 'wuyifan': '30', 'zhangyao': '23'}"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dict_person"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'liwen': '19', 'wuyifan': '30', 'zhangyao': '23'}"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 方法2：字典的推导式\n",
    "dict_person = {n.split(\"_\")[0]:n.split(\"_\")[1] for n in name_age}\n",
    "dict_person"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.2 函数/方法补全"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "import datetime"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2020-03-16\n"
     ]
    }
   ],
   "source": [
    "print(datetime.date(2020,3,16))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5852 days, 0:00:00\n"
     ]
    }
   ],
   "source": [
    "date_SARS = datetime.date(2003,12,5)\n",
    "date_nCov = datetime.date(2019,12,13)\n",
    "print(date_nCov.__sub__(date_SARS))  # 两个日期相差多少天\n",
    "# 注意 __sub__ 有两个下划线"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.3 路径补全"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "path = \"/user/liwen/Desktop/\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.4 关键字补全"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "liwen\n"
     ]
    }
   ],
   "source": [
    "def func1(name,age=None):\n",
    "    print(name)\n",
    "func1(\"liwen\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4. 内省"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 在一个变量或者函数前后使用“？”，两个“？”可显示源码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "func1?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "func1??"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5. %run"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* %run 要运行的文件"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 6. 魔术命令"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* https://www.cnblogs.com/bind/p/11958317.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 110 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[ 11.39329035,   5.1900706 ,  12.21617208, ...,   3.82700767,\n",
       "         -6.80312973,   2.26773383],\n",
       "       [-10.95617418,   8.6008006 ,   1.42108139, ...,  -5.15930916,\n",
       "          8.64827827,  -0.0384659 ],\n",
       "       [  2.29196166,  19.93808292,  -9.55170968, ...,  13.23126603,\n",
       "         -9.26387749,  -4.84884222],\n",
       "       ...,\n",
       "       [  7.57996002,  19.52521198,   5.19212432, ...,  -5.77532949,\n",
       "          2.06798797, -11.32071789],\n",
       "       [ -3.39229107,  19.60836016,  21.30271432, ..., -14.67429978,\n",
       "         13.08780285,   7.07105944],\n",
       "       [  1.42474067,  -9.47698914,  -2.30796694, ..., -10.71662819,\n",
       "         -7.18493746,  14.53372113]])"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 举例，查询CPU运行某个程序需要多长时间\n",
    "import numpy as np\n",
    "# 100随机矩阵 点积运算 \n",
    "a = np.random.randn(100,100)\n",
    "%time np.dot(a,a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "from lxml import etree\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1;31m魔术命令-Line magics\u001b[0m\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>命令</th>\n",
       "      <th>详情</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>%alias</td>\n",
       "      <td>定义别名</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>%alias_magic</td>\n",
       "      <td>为现有的魔术命令创建别名</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>%autocall</td>\n",
       "      <td>%autocall</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>%automagic</td>\n",
       "      <td>设置输入魔术命令时是否键入%前缀，on(1)/off(0)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>%bookmark</td>\n",
       "      <td>管理IPython的书签系统</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>%cd</td>\n",
       "      <td>更改当前工作目录</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>%colors</td>\n",
       "      <td>%colors</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>%config</td>\n",
       "      <td>%config</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>%debug</td>\n",
       "      <td>%debug</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>%dhist</td>\n",
       "      <td>打印历史访问目录</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>%dirs</td>\n",
       "      <td>返回当前目录堆栈</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>%doctest_mode</td>\n",
       "      <td>%doctest_mode</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>%edit</td>\n",
       "      <td>%edit</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>%env</td>\n",
       "      <td>设置环境变量(无需重启)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>%gui</td>\n",
       "      <td>%gui</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>%history</td>\n",
       "      <td>%history</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>%killbgscripts</td>\n",
       "      <td>%killbgscripts</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>%load</td>\n",
       "      <td>导入python文件</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>%load_ext</td>\n",
       "      <td>%load_ext</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>%loadpy</td>\n",
       "      <td>%load别名</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>%logoff</td>\n",
       "      <td>临时停止logging</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>%logon</td>\n",
       "      <td>重新开始logging</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>%logstart</td>\n",
       "      <td>%logstart</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>%logstate</td>\n",
       "      <td>%logstate</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>%lsmagic</td>\n",
       "      <td>列出当前可用的魔术命令。</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>%macro</td>\n",
       "      <td>定义用来重复执行的宏</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>%magic</td>\n",
       "      <td>显示魔术命令的帮助</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>%matplotlib</td>\n",
       "      <td>设置matplotlib的工作方式</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>%notebook</td>\n",
       "      <td>%notebook</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>%page</td>\n",
       "      <td>%page</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>%pastebin</td>\n",
       "      <td>%pastebin</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>%pdb</td>\n",
       "      <td>控制pdb交互式调试器的自动调用</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                命令                             详情\n",
       "0           %alias                           定义别名\n",
       "1     %alias_magic                   为现有的魔术命令创建别名\n",
       "2        %autocall                      %autocall\n",
       "3       %automagic  设置输入魔术命令时是否键入%前缀，on(1)/off(0)\n",
       "4        %bookmark                 管理IPython的书签系统\n",
       "5              %cd                       更改当前工作目录\n",
       "6          %colors                        %colors\n",
       "7          %config                        %config\n",
       "8           %debug                         %debug\n",
       "9           %dhist                       打印历史访问目录\n",
       "10           %dirs                       返回当前目录堆栈\n",
       "11   %doctest_mode                  %doctest_mode\n",
       "12           %edit                          %edit\n",
       "13            %env                   设置环境变量(无需重启)\n",
       "14            %gui                           %gui\n",
       "15        %history                       %history\n",
       "16  %killbgscripts                 %killbgscripts\n",
       "17           %load                     导入python文件\n",
       "18       %load_ext                      %load_ext\n",
       "19         %loadpy                        %load别名\n",
       "20         %logoff                    临时停止logging\n",
       "21          %logon                    重新开始logging\n",
       "22       %logstart                      %logstart\n",
       "23       %logstate                      %logstate\n",
       "24        %lsmagic                   列出当前可用的魔术命令。\n",
       "25          %macro                     定义用来重复执行的宏\n",
       "26          %magic                      显示魔术命令的帮助\n",
       "27     %matplotlib              设置matplotlib的工作方式\n",
       "28       %notebook                      %notebook\n",
       "29           %page                          %page\n",
       "30       %pastebin                      %pastebin\n",
       "31            %pdb               控制pdb交互式调试器的自动调用"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# requests爬取网页\n",
    "url = (\"https://www.cnblogs.com/bind/p/11958317.html\")\n",
    "response = requests.get(url)\n",
    "\n",
    "# etree html语法纠正,对文本进行自动修正\n",
    "response_elements = etree.HTML(response.text)\n",
    "\n",
    "# //*[@id=\"cnblogs_post_body\"]/table[1]\n",
    "\n",
    "# xpath定位(与另一门选修课《web数据挖掘》相关)\n",
    "table_magic = response_elements.xpath(\"//*[@id=\\\"cnblogs_post_body\\\"]/table[1]\")\n",
    "table = etree.tostring(table_magic[0],encoding='utf-8').decode()\n",
    "# etee.tostring()输出修正后的结果，类型是bytes\n",
    "\n",
    "# pd表格输出csv\n",
    "df = pd.read_html(table,encoding='utf-8',header=0)[0]\n",
    "results = list(df.T.to_dict().values())\n",
    "df.to_csv(\"magic_table.csv\",index=False)   # df.to_csv(相对位置，保存在当前路径下\n",
    "\n",
    "# pd读取csv\n",
    "magic_data = pd.read_csv(\"magic_table.csv\")\n",
    "print(\"\\033[1;31m魔术命令-Line magics\\033[0m\")\n",
    "magic_data\n",
    "\n",
    "# python颜色： \\033[显示方式：前景色；背景色m+结尾部分： \\033[0m\n",
    "# 显示方式： 0（默认\\）、1（高亮）、22（非粗体）、4（下划线）、24（非下划线）、 5（闪烁）、25（非闪烁）、7（反显）、27（非反显）\n",
    "# #前景色:   30（黑色）、31（红色）、32（绿色）、 33（黄色）、34（蓝色）、35（洋 红）、36（青色）、37（白色）\n",
    "#背景色:   40（黑色）、41（红色）、42（绿色）、 43（黄色）、44（蓝色）、45（洋 红）、46（青色）、47（白色）\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1;32m魔术命令-打印相关\u001b[0m\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>命令</th>\n",
       "      <th>详情</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>%pdef</td>\n",
       "      <td>打印任何可调用对象信息</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>%pdoc</td>\n",
       "      <td>打印对象的docstring</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>%pfile</td>\n",
       "      <td>%pfile</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>%pinfo</td>\n",
       "      <td>%pinfo</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>%pinfo2</td>\n",
       "      <td>%pinfo2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>%pip</td>\n",
       "      <td>运行pip命令</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>%popd</td>\n",
       "      <td>%popd</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>%pprint</td>\n",
       "      <td>美化打印</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>%precision</td>\n",
       "      <td>设置美化打印时的浮点数精度</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>%profile</td>\n",
       "      <td>打印您当前活动的IPython配置文件</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>%prun</td>\n",
       "      <td>告诉你程序中每个函数消耗的时间</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>%psearch</td>\n",
       "      <td>%psearch</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>%psource</td>\n",
       "      <td>打印对象源代码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>%pushd</td>\n",
       "      <td>%pushd</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>%pwd</td>\n",
       "      <td>返回当前工作路径</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>%pycat</td>\n",
       "      <td>%pycat</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>%pylab</td>\n",
       "      <td>加载numpy、matplotlib</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>%quickref</td>\n",
       "      <td>%quickref</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>%recall</td>\n",
       "      <td>%recall</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>%rehashx</td>\n",
       "      <td>%rehashx</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            命令                   详情\n",
       "0        %pdef          打印任何可调用对象信息\n",
       "1        %pdoc       打印对象的docstring\n",
       "2       %pfile               %pfile\n",
       "3       %pinfo               %pinfo\n",
       "4      %pinfo2              %pinfo2\n",
       "5         %pip              运行pip命令\n",
       "6        %popd                %popd\n",
       "7      %pprint                 美化打印\n",
       "8   %precision        设置美化打印时的浮点数精度\n",
       "9     %profile  打印您当前活动的IPython配置文件\n",
       "10       %prun      告诉你程序中每个函数消耗的时间\n",
       "11    %psearch             %psearch\n",
       "12    %psource              打印对象源代码\n",
       "13      %pushd               %pushd\n",
       "14        %pwd             返回当前工作路径\n",
       "15      %pycat               %pycat\n",
       "16      %pylab   加载numpy、matplotlib\n",
       "17   %quickref            %quickref\n",
       "18     %recall              %recall\n",
       "19    %rehashx             %rehashx"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "table_magic_2 = response_elements.xpath(\"//*[@id=\\\"cnblogs_post_body\\\"]/table[2]\")\n",
    "table_2 = etree.tostring(table_magic_2[0],encoding='utf-8').decode()\n",
    "\n",
    "# pd表格输出csv\n",
    "df_2 = pd.read_html(table_2,encoding='utf-8',header=0)[0]\n",
    "results = list(df_2.T.to_dict().values())\n",
    "df_2.to_csv(\"magic_table_2.csv\",index=False)\n",
    "\n",
    "# pd读取csv\n",
    "magic_data_2 = pd.read_csv(\"magic_table_2.csv\")\n",
    "\n",
    "print(\"\\033[1;32m魔术命令-打印相关\\033[0m\")\n",
    "magic_data_2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1;34m魔术命令-运行相关\u001b[0m\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>命令</th>\n",
       "      <th>详情</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>%reload_ext</td>\n",
       "      <td>通过其模块名称重新加载IPython扩展</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>%rerun</td>\n",
       "      <td>%rerun</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>%reset</td>\n",
       "      <td>%reset</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>%reset_selective</td>\n",
       "      <td>%reset_selective</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>%run</td>\n",
       "      <td>%run</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>%save</td>\n",
       "      <td>%save</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>%sc</td>\n",
       "      <td>%sc</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>%set_env</td>\n",
       "      <td>设置环境变量</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>%sx</td>\n",
       "      <td>%sx</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>%system</td>\n",
       "      <td>%system</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>%tb</td>\n",
       "      <td>%tb</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>%time</td>\n",
       "      <td>执行Python语句或表达式的时间</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>%timeit</td>\n",
       "      <td>%timeit</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>%unalias</td>\n",
       "      <td>移别名</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>%unload_ext</td>\n",
       "      <td>通过其模块名称卸载IPython扩展</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>%who</td>\n",
       "      <td>列出全局变量</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>%who_ls</td>\n",
       "      <td>以排序列表的方式列出变量</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>%whos</td>\n",
       "      <td>类似who，但给出的信息更详细</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>%xdel</td>\n",
       "      <td>%xdel</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>%xmode</td>\n",
       "      <td>%xmode</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  命令                    详情\n",
       "0        %reload_ext  通过其模块名称重新加载IPython扩展\n",
       "1             %rerun                %rerun\n",
       "2             %reset                %reset\n",
       "3   %reset_selective      %reset_selective\n",
       "4               %run                  %run\n",
       "5              %save                 %save\n",
       "6                %sc                   %sc\n",
       "7           %set_env                设置环境变量\n",
       "8                %sx                   %sx\n",
       "9            %system               %system\n",
       "10               %tb                   %tb\n",
       "11             %time     执行Python语句或表达式的时间\n",
       "12           %timeit               %timeit\n",
       "13          %unalias                   移别名\n",
       "14       %unload_ext    通过其模块名称卸载IPython扩展\n",
       "15              %who                列出全局变量\n",
       "16           %who_ls          以排序列表的方式列出变量\n",
       "17             %whos       类似who，但给出的信息更详细\n",
       "18             %xdel                 %xdel\n",
       "19            %xmode                %xmode"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "table_magic_3 = response_elements.xpath(\"//*[@id=\\\"cnblogs_post_body\\\"]/table[3]\")\n",
    "table_3 = etree.tostring(table_magic_3[0],encoding='utf-8').decode()\n",
    "\n",
    "# pd表格输出csv\n",
    "df_3 = pd.read_html(table_3,encoding='utf-8',header=0)[0]\n",
    "results = list(df_3.T.to_dict().values())\n",
    "df_3.to_csv(\"magic_table_3.csv\",index=False)\n",
    "\n",
    "# pd读取csv\n",
    "magic_data_3 = pd.read_csv(\"magic_table_3.csv\")\n",
    "print(\"\\033[1;34m魔术命令-运行相关\\033[0m\")\n",
    "magic_data_3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###  7. matplotlib"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* matplotlib是python的2D绘图库。\n",
    "* 在绘图结构中，figure创建窗口，subplot创建子图，所有绘画只能在子图上进行\n",
    "* plt表示当前子图，若没有就创建一个子图\n",
    "* Figure：面板(图)，matplotlib中的所有图像都是位于figure对象中，一个图像只能有一个figure对象\n",
    "* Subplot：子图，figure对象下创建一个或多个subplot对象(即axes)用于绘制图像"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 配置参数\n",
    "* axex: 设置坐标轴边界和表面的颜色、坐标刻度值大小和网格的显示\n",
    "* figure: 控制dpi、边界颜色、图形大小、和子区( subplot)设置\n",
    "* font: 字体集（font family）、字体大小和样式设置\n",
    "* grid: 设置网格颜色和线性\n",
    "* legend: 设置图例和其中的文本的显示\n",
    "* line: 设置线条（颜色、线型、宽度等）和标记\n",
    "* patch: 是填充2D空间的图形对象，如多边形和圆。控制线宽、颜色和抗锯齿设置等。\n",
    "* savefig: 可以对保存的图形进行单独设置。例如，设置渲染的文件的背景为白色。\n",
    "* verbose: 设置matplotlib在执行期间信息输出，如silent、helpful、debug和debug-annoying。\n",
    "* xticks和yticks: 为x,y轴的主刻度和次刻度设置颜色、大小、方向，以及标签大小。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 线条风格linestyle或ls\n",
    "* ‘-‘:实线\n",
    "* ‘:’:虚线\n",
    "* ‘–’:破折线\n",
    "* ‘None’/’‘,’’:什么都不画\n",
    "* ‘-.’\t点划线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x17ae97c6940>]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np  # 必须引入此模块，否则程序会报错，个人的jupyter notebook问题\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib import pyplot as plt\n",
    "plt.plot(np.random.randn(50).cumsum())   # 绘制子坐标系"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'Stages')"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()   # 开启一个窗口\n",
    "ax = fig.add_subplot(1,1,1)  # 创建子图，参数：行数、列数、第几个\n",
    "ax.plot(np.random.randn(1000).cumsum())  # 画图\n",
    " \n",
    "#修改X轴的刻度\n",
    "#刻度放在哪些位置\n",
    "ticks = ax.set_xticks([0,250,500,750,1000])   # 设置坐标轴刻度\n",
    "#也可以将其他值用作标签\n",
    "# 设置刻度的显示文本，ratation旋转角度，fontsize字体大小\n",
    "labels = ax.set_xticklabels(['one','two','three','four','five'], rotation=30, fontsize='small')\n",
    " \n",
    "#设置标题\n",
    "ax.set_title('My first matplotlib plot')\n",
    "#设置X轴名称\n",
    "ax.set_xlabel('Stages')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "'''\n",
    "    颜色  color:修改颜色，可以简写成c\n",
    "    样式  linestyle='--' 修改线条的样式 可以简写成 ls\n",
    "    标注  marker : 标注\n",
    "    线宽  linewidth: 设置线宽 可以简写成 lw   （lw=2）\n",
    "    \n",
    "'''\n",
    "x1 = np.random.randn(50)   # cumsum()作用是累加和\n",
    "x2 = np.random.randn(50)\n",
    "x3 = np.random.randn(50)\n",
    "plt.plot(x1.cumsum(),c='r',linestyle='--',marker='o')\n",
    "plt.plot(x2.cumsum(),c='y',linestyle='-.',marker='>')\n",
    "plt.plot(x3.cumsum(),c='b',linestyle=':',marker='*')\n",
    "plt.legend(['x1','x2','x3'])   # 显示图例\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
